package top.infopub.mgr.bpa.dao;


import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import top.infopub.generic.GenericDao;
import top.infopub.mgr.bpa.domain.OutcaeSureDomain;
import top.infopub.mgr.bpa.vo.OutcaeSureVo;
import top.infopub.model.bpa.OutcaeSure;

import com.github.pagehelper.Page;


/** 对外建安产值确权(BPA_OUTCAE_SURE) **/
public interface OutcaeSureDao extends GenericDao<OutcaeSure, String> {

    /**
     * 根据条件查询对外建安产值确权记录
     * @param OutcaeSureVo
     * @return 
     * @see
     */
    Page<OutcaeSureDomain> selectByDomainWhere(OutcaeSureVo outcaeSureVo);

    /**
     * 根据条件查询对外建安产值确权记录--我审批的列表
     * @param OutcaeSureVo
     * @return 
     * @see
     */
    Page<OutcaeSureDomain> selectMyCheckByDomainWhere(OutcaeSureVo outcaeSureVo);

    /**
     * 新增-对外建安产值确权
     */
    void insertById(OutcaeSure outcaeSure);
    void insertSelective(OutcaeSure outcaeSure);

    /**
     * 根据项目编号查询当月确权金额
     */
    BigDecimal selectBySure(Map<String, Object> map);

    /**
     * 根据项目编号查询开累确权金额
     */
    BigDecimal selectDecimalByProCode(Map<String, Object> map);

    /**
     * 详情
     */
    OutcaeSureVo queryById(String id);

    /**
     * 下浮前
     * @param sureMonth
     * @return 
     * @see
     */
    BigDecimal selectMonthPreAmountPre(@Param("sureMonth") Date sureMonth,
                                       @Param("proCode") String proCode);

    /**
     * 下浮后
     * @param sureMonth
     * @return 
     * @see
     */
    BigDecimal selectMonthAfterAmountAfter(@Param("sureMonth") Date sureMonth,
                                           @Param("proCode") String proCode);
}